media: Convince gstreamer to deliver GL memory
authorMatthias Clasen <mclasen@redhat.com>
Fri, 1 Jan 2021 16:31:49 +0000 (11:31 -0500)
committerMatthias Clasen <mclasen@redhat.com>
Mon, 4 Jan 2021 20:00:36 +0000 (15:00 -0500)
Use a glsinkbin to make gstreamer deliver GL memory.

modules/media/gtkgstpaintable.c

index 500997f75bc5e1b2f12c9c5b8e4ba8fdbc4b6bd5..fcc5a4f1d242d206c063ef70a3fcd5ca703eb6df 100644 (file)
@@ -115,11 +115,18 @@ gtk_gst_paintable_video_renderer_create_video_sink (GstPlayerVideoRenderer *rend
                                                     GstPlayer              *player)
 {
   GtkGstPaintable *self = GTK_GST_PAINTABLE (renderer);
+  GstElement *sink, *glsinkbin;
 
-  return g_object_new (GTK_TYPE_GST_SINK,
+  sink = g_object_new (GTK_TYPE_GST_SINK,
                        "paintable", self,
                        "gl-context", self->context,
                        NULL);
+
+  glsinkbin = gst_element_factory_make ("glsinkbin", NULL);
+
+  g_object_set (glsinkbin, "sink", sink, NULL);
+
+  return glsinkbin;
 }
 
 static void